Measuring and decomposing performance application transactions often requires distributed instrumentation co-located with application components servicing or transporting the transaction. The application components are implemented on the various computing devices in the distributed network that are involved with (e.g., initiate, process, transfer, etc.) at least a portion of a transaction. The requirement for such co-located instrumentation results in separate streams of performance measurement data that need to be correlated to show the relative contribution of each application component's service time to the overall transaction's response time. Correlation using time of day is difficult as it requires synchronized time sources which tend to drift and which are problematic to keep synchronized over long periods of time. For performance measurements, one cannot easily derive accurate durations by applying functions to timestamps taken from different timing sources. Therefore, accurate duration calculations must occur based on timestamps from the same time source. This causes multiple timestamps and/or durations to be measured at varying locations in the transaction's path whenever a distributed application spans multiple time sources.
Correlation of these timestamps and durations is typically based on tagging them with correlation data which is later used to associate related measurements, see, e.g., U.S. Pat. No. 6,108,700, issued to Maccabee et al. on Aug. 22, 2000 and entitled: “Application End-to-End Response Time Measurement and Decomposition,” the disclosure of which is incorporated by reference herein. This introduces data management issues (e.g., storage, movement, and consolidation of distributed duration data) making correlation of distributed applications difficult and time consuming.
Further, techniques are known where embedded JavaScript is added to HTML (HyperText Markup Language) pages to measure how long it takes for the client to receive and render a web page. The system that adds the JavaScript can take timestamps which can later be compared with the information generated by the JavaScript to produce one layer of decomposition. However, intervening application components such as web proxies can not add their perspective of response time, therefore, this conventional method is limited to only a pair of participants (e.g., the client where the JavaScript runs and the server where the JavaScript was embedded). In addition, this embedded JavaScript method introduces JavaScript processing not normally in the HTML page, thus necessitating an alteration in the way the application operates.
Still further, a U.S. patent application identified as Ser. No. 09/637,330, filed on Aug. 10, 2000 and entitled “Method and Apparatus for Measuring Web Site Performance,” the disclosure of which is incorporated by reference herein, discloses a technique for extending the application data (payload) with logic to take measurements and report back it's findings. Hence, the application data must be modified to add the measurement and reporting logic. Also, the technique works only at the endpoints (e.g., application server and most notably at the client) of a transaction.